home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 1
/
Amiga Tools.iso
/
egs-tools
/
egs_demo-version
/
egs_devels
/
c-include
/
egsblit.h
< prev
next >
Wrap
C/C++ Source or Header
|
1994-06-06
|
4KB
|
157 lines
#ifndef EGS_EGSBLIT_H
#define EGS_EGSBLIT_H
/***************************************************************************\
* $
* $ FILE : egsblit.h
* $ VERSION : 1
* $ REVISION : 1
* $ DATE : 31-Jan-93 21:48
* $
* $ Author : mvk
* $
*****************************************************************************
* *
* (c) Copyright 1990/93 VIONA Development *
* All Rights Reserved *
* *
\***************************************************************************/
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef EXEC_PORTS_H
#include <exec/ports.h>
#endif
#ifndef EGS_EGS_H
#include <egs/egs.h>
#endif
/*
* This library offers basic drawing functions. These are especially func-
* tions that might later be implemented by a blitter in some future version
* of a graphics card.
*
* Therefore these functions should be used whenever possible.
*
* Moreover, the library forms the base for other libraries such as EGSLayers,
* EGSGfx and EGSIntui. If the library is implemented for any other graphics
* card, the other libraries will run without change.
*
* Programs that abide by this convention face a safe future.
*
* In favour of speed, the library neglects heavier management. Most func-
* tions are contained in one version with and one version without clipping.
* That clipping is rather rudimentary since it supports only one rectangle.
*/
/*
* ClipRect, ClipRectPtr
*
* Definition of a clipping rectangle. The values are inclusive, i.e. they
* are located inside the rectangle.
* The "Next" field is ignored by EGSBlit but used by EGSLayers.
*/
typedef struct EB_ClipRect *EB_ClipRectPtr;
struct EB_ClipRect {
EB_ClipRectPtr Next;
WORD Left, Top, Right, Bottom;
};
/*
* ColorTable, Image
*
* Many times you use predefined images for icons. As video organization is
* different in different video modes, images are stored in a general, bit-
* plane oriented way and can be inflated on need to different bit depths.
*
* To achieve this an array must be specified containing the colour values
* that are wanted for the image.
*/
/* Note: differing from the Cluster .def file, ColorTable is defined as the
type contained in the color table instead of the array itself. Thus
ColorTablePtr is declared differently, either.
*/
typedef ULONG EB_ColorTable;
typedef EB_ColorTable *EB_ColorTablePtr;
typedef struct EB_Image *EB_ImagePtr;
struct EB_Image {
WORD Width, Height, Depth;
WORD Pad_1;
APTR Planes [8];
};
/*
* ColorDes, ColorDesPtr
*
* Descriptor for text output.
*
* ColorDes
* .Front : Front pen colour.
* .Back : Back pen colour if transparent = FALSE.
* .Transparent : if TRUE the background shines through "holes".
*/
typedef struct EB_ColorDes *EB_ColorDesPtr;
struct EB_ColorDes {
ULONG Front, Back;
UBYTE Transparent;
UBYTE Pad_1, Pad_2, Pad_3;
};
/*
* ImageDesPtr, ImageDes
*
* Object description for "FillMask".
*
* ImageDes
* .Colors : Filling colours.
* .Left,
* .Top,
* .Width,
* .Height : Borders of the object.
*/
typedef struct EB_ImageDes *EB_ImageDesPtr;
struct EB_ImageDes {
struct EB_ColorDes Colors;
WORD Left, Top, Width, Height;
};
/*
* Polygon, PolygonPtr
*
* Description of a polygon for PolygonFill. The array size is not limited.
*/
struct EB_Polygon {
WORD X, Y;
};
typedef struct EB_Polygon *EB_PolygonPtr;
#endif /* EGS_EGSBLIT_H */